/*
 * Camara.cpp
 *
 *  Created on: 03/12/2009
 *      Author: ale
 */

#include "Camara.h"
#include <cmath>
float eye[3] ;//= { 10.0, 10.0, 10.0 };
float at[3] ;//= { 0.0, 0.0, 0.0 };
float up[3] ;//= { 0.0, 0.0, 1.0 };
Camara::Camara() {
	distancia = 10.0;
	angulo = 0;
	elevacion = 0;
	camx = 10.0;
	camy = 10.0;
	camz = 10.0;
	objx = 0.0;
	objy = 0.0;
	objz = 0.0;
	vx = 0.0;
	vy = 0.0;
	vz = 1.0;
	calcularPosicion();
}

Camara::~Camara() {

}

GLfloat Camara::modulo(){
	return sqrt((camx-objx)*(camx-objx) + (camy-objy)*(camy-objy) +(camz-objz)*(camz-objz));
}

void Camara::calcularPosicion(){
	   camx= objx+distancia*cos(M_PI/180*angulo);
	   camy= objy+distancia*sin(M_PI/180*angulo);
}

void Camara::moverArriba(){
	distancia--;
	calcularPosicion();
}

void Camara::moverAbajo(){
	distancia++;
	calcularPosicion();
}
void Camara::moverDerecha(){
	angulo +=2;
	calcularPosicion();
}
void Camara::moverIzquierda(){
	angulo -=2;
	calcularPosicion();
}
void Camara::ponerCamara(){
	gluLookAt(camx,camy,camz,objx,objy,objz,vx,vy,vz);
}
